---@class RedRob.Config
local Config = RedRob.CreateSingleton("Config")
--region state
--人物状态
Config.ActionState = {
    idle = 1,
    run = 2,
    attack = 3,
    failed = 4,
    win = 5,
}
Config.ActionStateMapping = {
    [Config.ActionState.idle] = RedRob.IdleState,
    [Config.ActionState.run] = RedRob.RunState,
    [Config.ActionState.attack] = RedRob.AttackState,
    [Config.ActionState.failed] = RedRob.FailedState,
    [Config.ActionState.win] = RedRob.WinState,
}
--战斗阶段
Config.OpenStage = {
    waiting = 1,    --等待阶段
    open = 2,       --开放阶段
    close = 3,      --关闭阶段
}
Config.BattleStage = {
    waiting = 1,  --等待
    battle = 2,         --战斗中
    close = 3           --关闭活动
}
--攻击阶段
Config.AttackStage = {
    none = 0,
    inBattle = 2,   --进入战斗状态
    readyToFight = 4,--准备
    attack = 5,     --攻击
    win = 6,        --胜利
    failed = 7,     --失败
    battleFinished = 8,--战斗结束
}
Config.ActorType = {
    player = 1,
    minerals = 2,
    stone = 3,
}
Config.MineralStatus = {
    full = 1,--没被挖
    digEmpty = 2,--挖空了
}
Config.MineralType = {
    box = 1, --宝箱
    buff = 2,--buff球
    Stone = 3,--宝石
}
Config.BuffType = {
    atk = 1, --攻击buff
    hp = 2,--生命buff
    speed = 3,--速度buff
}
Config.SortingOrder = {
    player = 1,
    shadow = 2,
    effect = 3,
    effect2 = 4,
    buff = 5,
}
Config.BuffState = {
    CAN_NOT_SELECT = 6    --不可选中
}
--endregion state
--region ai
--ai
Config.AiType = {
    playerAi = 1,    --玩家ai
    playerAutoFightAi = 2,    --自动搜寻战斗ai
}
Config.AiMapping = {
    [Config.AiType.playerAi] = RedRob.PlayerAi,
    [Config.AiType.playerAutoFightAi] = RedRob.PlayerAutoFightAi,
}
--endregion ai
--region 技能相关
--技能显示类型
Config.SkillShowType = {
    normalAttack = 1,   --普攻
}
--释放前目标类型
Config.SkillReleaseType = {
    noTarget = 1,   --不需要目标即可释放
    needTarget = 2, --需要选定目标释放
    needPos = 4,    --指定地点为目标释放
}
--技能类型
Config.SkillType = {
    Passive = 1,    --被动技能
    General = 2,    --主动施法技能
    Activate = 4,   --激活类技能
}
Config.SkillNodeType = {
    effect = 1,     --特效
    action = 2,     --动作
    bullet = 3,    --飞行道具
}
Config.EffectType = {
    effect = 1,     --普通特效
    bullet = 2,    --飞行道具
}
Config.EffectMapping = {
    [Config.EffectType.effect] = RedRob.EffectBase,
    [Config.EffectType.bullet] = RedRob.Bullet,
}

Config.SkillCallbackType = {
    skillStart = 1,
    skillEnd = 2,
    hitBefore = 3,
    hitAfter = 4,
    attackEffectLoadDone = 5,
    attackFrameEventCallback = 6,
}
--endregion 技能相关
--region 事件
Config.Event = {
    ActorPosChanged = 1,
    ActorDead = 2,
    PlayerReborn = 3,       --重生了
    CameraPosChanged = 4,
    PlayerInBattle = 5,     --玩家进入战斗或退出战斗
    PlayerHpChanged = 6,     --玩家血量变化
    PlayerWin = 7,          --玩家胜利
    PlayerStartReborn = 8,  --开始重生倒计时
    ActorCreate = 9,       --玩家创建
    ActorDestroy = 10,     --玩家销毁
    PlayerFight = 11,       --进入开战状态
    BuffChanged = 14,       --buff改变
    MineralReward = 15,     --矿资源获得
    MidRefreshTip = 16,

    BattleLoadingStart = 101,    --战场开始加载
    BattleReady = 102,          --战场加载完开始
    BattleLeave = 103,          --战场卸载
    BattleTimeInit = 104,       --战场时间
    BattleTimeOut = 105,        --战场时间已结束

    PlayerResourceChange = 201, --玩家资源变化
    PlayerResourceUpdate = 202, --玩家当前资源更新
    PlayerEmojiShow = 203,      --玩家表情
    PlayerAttrReduce = 204,     --玩家属性下降万分比
    ResourceRefreshTip = 205,   --矿石刷新倒计时
}
--endregion 事件
Config.RoleBoneNames = {'head_drop', 'body_drop', 'foot_drop'}
